package cn.catsdad.service.api;

import cn.catsdad.base.service.api.IBaseService;
import cn.catsdad.dto.RoleUserDTO;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 角色与用户关联service
 *
 * @author xuyonglong
 * @version V1.0 2023/4/13
 */
public interface RoleUserService extends IBaseService<RoleUserDTO, Long> {

    /**
     * 查询用户所属的角色
     *
     * @param userIds 用户id集合
     * @return 角色id
     */
    List<Long> queryRoleIdByUserIdIn(Collection<Long> userIds);

    /**
     * 根据用户id删除数据
     *
     * @param userIds 用户id集合
     */
    void deleteByUserIds(Collection<Long> userIds);

    /**
     * 根据角色id删除数据
     *
     * @param roleIds 角色id集合
     */
    void deleteByRoleIds(Collection<Long> roleIds);

    /**
     * 查询用户具备的角色id
     *
     * @param userIds 用户id集合
     * @return 用户id=》角色id列表
     */
    Map<Long, List<Long>> queryRolesByUserIds(Collection<Long> userIds);

}
